home *** CD-ROM | disk | FTP | other *** search
- ===============================================================================
- ========================== ============================
- ========================== VERSION HISTORY ============================
- ========================== ============================
- ===============================================================================
-
-
- For easy reference, this history is presented in reverse order (most
- recent version first). Remember: if you have previously registered
- Parse-O-Matic, you can self-register any evaluation copies we create
- for two years (six years for deluxe registration). Thus, your small
- investment in the initial registration can provide you with many
- free updates. Since we do not automatically ship new versions, we
- invite you to visit our Web site (users.aol.com/psoftinfo) every few
- months, to see what's new.
-
-
- +------------------------- WE ARE CUSTOMER-DRIVEN! ---------------------------+
- | |
- | Most of the enhancements to Parse-O-Matic are inspired by POM users. |
- | We charge a nominal fee for custom work, but we will usually provide |
- | a discount if the requirement seems to be beneficial to other users. |
- | |
- | ******* PARSE-O-MATIC'S EVOLUTION IS GUIDED BY OUR CUSTOMERS ******* |
- | |
- +-----------------------------------------------------------------------------+
-
-
- ------ ------------------------------------------------------------------------
- VER. WHAT'S NEW IN THIS VERSION
- ------ ------------------------------------------------------------------------
-
- 3.92A Enhanced SET command
- Added trimming and default settings to SET command
- This turned out to be so useful that it alone warranted a new release!
- Minor changes to documentation
- Renamed several files to use proper .TXT extension
- This is in deference to Windows users
-
- 3.91A New Features
- Job (POJ) files contain the parameters for a POM command
- Job files allow you to prompt for the input and output file names
- See "Parse-O-Matic Job (POJ) Files" in the manual
- Job files are a handy way to run POM from Windows
- New Command
- FILESIZE var value
- Returns size of file, or null if file does not exist
- See "The FILESIZE Command" in the manual
- Enhanced Commands
- OFILE can now deduce an output file name, based on the input file name
- See "The OFILE Command" in the manual
- TRIM now has "multiple" option
- TRIM $FLINE "M" " " removes multiple spaces, leaving only singles
- See "The TRIM Command" in the manual
- POM-File Encryption
- New SCRAMBLE utility discourages users from tampering with a POM file
- The POM file is rendered unreadable -- except to Parse-O-Matic
- See "Encrypted (Scrambled) POM Files" in the manual
- Other Enhancements
- The code for trimming has been rewritten for faster performance
- This improvement should be noticeable when converting large files
- The SHOWNUM utility now converts characters as well as numbers
- See "The SHOWNUM Utility" in the manual
-
- ------ ------------------------------------------------------------------------
- VER. ENHANCEMENTS IN PREVIOUS VERSIONS
- ------ ------------------------------------------------------------------------
-
- 3.90A New Features
- Deduced, array and eponymous variables
- This is an extremely powerful feature of Parse-O-Matic
- Supports 1, 2 and 3 dimensional arrays
- Supports eponymous variables
- You can name a variable after a piece of input data
- You can not do this kind of thing in most standard languages
- User-specified command-line parameters
- /X /Y /Z set $CMDLINEX $CMDLINEY $CMDLINEZ
- New SCANPOSN command compares a string against a list of items
- New RANDOM command generates a random number
- Enhancements
- POM now runs in protected mode for improved performance
- POM will no longer run on 8088 and 8086-class machines
- A custom 8088/8086 copy of 3.90 can be made for you, if necessary
- Improved capacity for variables and literals
- Increased maximum number of variables and literals from 1000 to 2000
- This can get used up quickly by arrays (each entry is a variable)
- Optimized storage of literals
- Identical literals only take up one variable/literal slot
- Vastly improved file viewer (SEE.EXE)
- No limits to file length; views lines up to 255 chars wide
- Many helpful search commands; built-in help and customization
- This version is to support POM -- not for distribution
- Problems Fixed
- Corrected unexpected page eject when using OFILE then PAGELEN
- This only mattered if PAGELEN was set for the previous file
- Corrected occasional spurious character "found" at end of SPLIT files
-
- ----------------
- UPGRADE ADVISORY
- ----------------
-
- Any variable names that contain parentheses "(" or ")" should be renamed
- Any variable names that contain commas should be renamed
- In general, use only A to Z, 1 to 9 and underscore in variable names
-
- Debugging notice
- The OUT and OUTEND commands work slightly differently
- They no longer report if they encounter a non-existent variable
- If they can't find a variable, they simply put nothing at that spot
- This is closer to the general theory of variables of POM
- This also allows for simpler code with scattered array variables
-
- 3.81C Corrected leap-year interaction between DATE, MAKEDATA and MAKETEXT
- This occured when converting both date serials and text dates
-
- 3.81B Corrected typographical error in the user manual
-
- 3.81A New commands
- OVERLAY lets you extend or overwrite portions of a variable
- REWIND lets you back up in a SPLIT or CHOPped file
- ROUNDING controls rounding by CALCREAL (see Upgrade Advisory)
- SHOWNOTE displays a short progress message on the processing screen
- Enhancements
- The GET command
- GET can now be used in SPLIT files, not just CHOPped files
- GET x "EOF" returns "Y" or "N" for End-of-File condition
- LOOSE parameter (STRICT is default)
- Permits processing to continue despite unexpected end-of-file
- Manual reading (CHOP 0) now runs slightly faster
- Problems fixed
- ERASE did not work if the file name had a plus ("append") in front
- Quiet Mode (/Q) is better behaved when POM is called by a DOS program
- Minor changes sometimes appeared on the screen if it was not redrawn
-
- ----------------
- UPGRADE ADVISORY
- ----------------
-
- This notice concerns you if you use the CALCREAL command.
-
- Due to the way that real numbers (as opposed to integers) are
- calculated in binary, CALCREAL would sometimes return unexpected
- results. For example:
-
- CALCREAL x = "400.00" "-" "390.60" "2"
-
- produces the answer "9.39" rather than the expected answer of "9.40".
-
- This is because, in real-mode binary calculations, the answer ends up as
- 9.3999999, which is very close indeed to the correct answer. However,
- when you specify "two digits of precision" (the "2" in the command), the
- answer is simply truncated after two digits, yielding the answer "9.39".
-
- This issue is now resolved. When appropriate, answers are rounded up,
- if you have explicitly specified a fixed number of digits of precision.
- Floating calculations are not rounded.
-
- This means that existing POM files may work slightly differently than
- before. To make your existing POM files continue to work the way they
- used to (i.e. simply truncating answers when you specify the number of
- digits of precision), place the following command at the beginning of
- your POM file (typically in the PROLOGUE):
-
- ROUNDING "N"
-
- This will disable the rounding feature, which is, by default, enabled.
-
- See "The ROUNDING Command" (in the user manual) for full details.
-
- 3.80A New KEEP command performs a conditional page eject to keep text together
- New CODE and CALL commands allow you to define subroutines
- New predefined value $LINECOUNTER
- Color control for menus (see Upgrade Advisory)
- Changes to user manual
- Reformatted for easier reference
- Manual file has been renamed from POM.DOC to MANUAL.DOC
- Please note that our phone numbers for credit card orders has changed
- See the text file ORDER.FRM for the new numbers
-
- ----------------
- UPGRADE ADVISORY
- ----------------
-
- This notice concerns you if:
-
- - You use the old menu program MENU.EXE in your own batch files, or...
- - You placed the old DEVELOP.BAT file in another directory, or..
- - You are using a modified copy of the old DEVELOP.BAT
-
- The old menu program (MENU.EXE) has been replaced by a slightly improved
- version, named PSMENU_D.EXE. The name was changed to avoid confusion
- with the numerous menu programs that are also called MENU.EXE. (Some
- users experienced problems when using the DEVELOP.BAT batch file because
- they had more than one MENU.EXE on their system.)
-
- Please do not rename PSMENU_D.EXE to something else; we will be
- upgrading our multi-platform support soon, and the menuing system will
- expect the DOS menu program to have that name.
-
- PSMENU_D lets you control the color of the menus. For details, print or
- view the comments in the file POM.MNU.
-
- You may use PSMENU_D in your other applications. Enter PSMENU_D at the
- DOS prompt for an explanation of the distribution (legal) conditions.
-
- 3.71A Fixed: Some data might be lost if OUT generated exactly 254 characters
- and then additional data was added with another OUT or OUTEND command
-
- 3.70A New commands
- CVTCASE converts a variable to uppercase or lowercase
- GETENV obtains a system environment variable (e.g. PATH)
- MSGWAIT controls the behaviour of error messages
- REMAP transforms sub-strings into other strings
- MAPFILE reads a file containing data transformations for REMAP
- Enhancements to PARSE, PEEL and FINDPOSN
- Search strings (e.g. "2*,") are now known as decapsulators
- Overlapping decapsulators now behave more gracefully
- PARSE and PEEL return an empty string; FINDPOSN returns "0"
- This situation used to generate an error message
- i.e. "From" value exceeds "To" value
- Most users found this unhelpful or confusing
- For details, see "Overlapping Decapsulators" in the manual
- New search parameter looks for "last occurence" or "first occurence"
- Example of "last occurence": PARSE xyz $FLINE ">*$" ">*.00"
- Example of "first occurence": PARSE xyz $FLINE "<*$" "<*.00"
- Documentation
- Improved quick-reference section
- The "importable" version has moved from EXAMPL04.POM to QUICKREF.POM
-
- ----------------
- UPGRADE ADVISORY
- ----------------
-
- This notice concerns you if:
-
- - You have created POM applications that are run unattended
- - You use the HALT command
-
- (See "Unattended Operation" and "The HALT Command" in the manual)
-
- Since version 3.20, error messages would "time out" after sixty seconds
- (or when a key was pressed), whereupon Parse-O-Matic would terminate.
-
- Parse-O-Matic now waits for permission to continue if an error occurs.
- You can control this behaviour with the new MSGWAIT command (see "The
- MSGWAIT Command" in the manual).
-
- To make Parse-O-Matic behave as it did before (i.e. timing out sixty
- seconds), add this line to your POM file: MSGWAIT "60"
-
- If you simply want to make your HALT commands work the same way (i.e.
- allowing them to time out after about a minute), insert MSGWAIT "60"
- prior to each HALT command.
-
- 3.61A Added inline decrement (e.g. SET y = x-)
- LOG command now allows two additional (optional) values
- Rationalized null specs and empty fields in Parse, Peel and FindPosn
- Customers were using these in creative ways that we had not foreseen
- We have taken these into account and fully documented the behaviour
- See "The Null Decapsulator", "Left-Peeling" and "Insoluble Searches"
- Minor improvements to the processing display
-
- 3.60A New commands
- MAKEDATA converts text data to binary
- MAKETEXT converts binary data to text
- ZERODATE initializes the date for serialized date format
- GET reads variable-length records and delimiter-terminated data
- GETTEXT combines functions of GET and MAKETEXT commands
- AGAIN allows you to return to an earlier BEGIN comparison
- Enhancements
- CHOP now allows manually-controlled reading (via the GET command)
- Read-only files are opened as such, avoiding sharing problems on LANs
- Improved appearance of trace logs
- Hexadecimal literals (e.g. $39$34 means "94")
- Utilities
- SHOWNUM.EXE: reference tool converts decimal to hex and vice-versa
- DEVELOP.BAT: simple interactive development environment (IDE)
- Documentation
- New material added for the READNEXT and LOOKUP commands
- Several new sections about techniques and operational planning
- Additional material about running Parse-O-Matic under Windows
- Improved file-handling
- OFILE now adds the default extension, if necessary
- In 3.50, OFILE "XYZ" would not automatically add the .TXT extension
- The default extension routine is no longer "fooled" by ..\ or .\
- Earlier, a file name like ..\XYZ would not get the default extension
- Problems fixed
- Fixed "FRAME-UUI" problem affecting Quiet mode
- Fixed routine to search through DOS PATH for "missing" files
-
- 3.50A Corrected a bug in the LOOKCOLS command (affected Parse-O-Matic v3.4x)
- It would set the "Key-End" value to the last number listed in LOOKCOLS
- It would set the "Data-Start" and "Data-End" to defaults (12 and 255)
- New commands
- ERASE deletes a file
- OUTPAGE sends a page eject to the output file (or device)
- PAUSE delays the specified number of milliseconds
- OFILE switches between output files
- You can overwrite a file or append (add to the end)
- See "How Parse-O-Matic Opens an Output File" in the manual
- The append feature is also available at the command-line level
- Enhancements
- Processing display now shows input and output in appropriate units
- Input units (Bytes or Records)
- Output units (Bytes or Lines)
- Additional information in "processing completed" line in POMLOG.TXT
- It now specifies the amount of output (in bytes or lines)
- Output can now be sent to a generic device (e.g. COMx or LPTx)
- See "Sending Output to a Device" in the manual
- Documentation
- New "File Handling" section in the manual
-
- ----------------
- UPGRADE ADVISORY
- ----------------
-
- POM now creates the output file ONLY when it first receives output
- See "How Parse-O-Matic Opens an Output File" in the manual for details
- If the output file does not receive any output...
- If it did not previously exist, it will not be created
- If it already existed, it will contain the old data
- To ensure old data is gone...
- Delete the output file before running Parse-O-Matic, or ...
- Use the ERASE command in the PROLOGUE
-
- 3.41B PEEL reports precise nature of certain impossible parsing situations
- 3.41A Fixed trimming problem affecting PEEL when using "null" delimiter
-
- 3.40 New commands
- DATE and TODAY provide date formatting, in any language
- MONTHNUM converts text month to numeric month, in any language
- COPY copies a variable from one character position to another
- DELETE removes selected characters positions from a variable
- EXTRACT moves selected characters from one variable to another
- FINDPOSN locates the position of a string in another
- Enhancements
- All control files (including POM) are searched for, if necessary
- If a directory is explicitly specified, POM looks there only
- Otherwise, POM searches logged dir, POM's dir, then the DOS PATH
- This makes it easier to build a library of standard files
- INSERT now allows "insert to left" and "insert to right"
- Automatic numeric comparators
- The old method used text comparisons, which required pre-padding
- Comparisons automatically determine if number is real or integer
- CALC and CALCREAL now explicitly report "divide by zero" attempts
- User manual reformatted for easier reference
- Explanations of commands are preceded by an improved overview
- Problems fixed
- There were no problems reported in the last release
-
- 3.31A Numeric command parameters are now more forgiving
- Spaces, tabs and commas are removed
-
- 3.30A New commands
- LOG command writes a message to the log file POMLOG.TXT
- HALT command allows termination with a DOS errorlevel
- CALC command performs integer arithmetic functions
- CALCREAL command performs decimal arithmetic functions
- EPILOGUE command defines code to be run before input is processed
- PROLOGUE command defines code to be run after input is processed
- Enhancements
- Optional MINLEN setting controls the READNEXT command
- Tracing no longer shows code inside skipped BEGIN/ELSE/END blocks
- Increased variable name length from 8 to 12
- Increased number of DBF fields from 50 to 100
- Increased maximum line length in look-up files from 80 to 255
- Increased maximum number of POM lines from 500 to 750
- This does not include comment lines
- Lookup file (LOOKFILE) is now searched for in various directories
- If a directory is explicitly specified, POM looks there only
- Otherwise, POM searches logged dir, POM's dir, then the DOS PATH
- Restructured tutorial for easier reference
- New deluxe registration provides 6 years of new version registration
- Three times the standard benefit, but only twice the price
- Problems fixed
- Clustered ACCEPTs inside "false" code blocks were sometimes executed
- Some error reporting caused problems on extremely large POM files
- Ran out of file handles if you had a large number of input files
- Incomplete trimming of multiple character delimiters in PEEL
-
- 3.21A Custom version; not released to public
-
- 3.20A Parsing of multiple input files into one output file
- DOS wildcards are now permitted in POM command for input file name
- For example: POM XYZ.POM *.TXT OUTPUT.TXT
- New NEXTFILE command skips to next input file
- New predefined variable $COMMAND, showing current POM command
- New PEEL command
- Works like PARSE, but removes parsed text from source variable
- New SOUND command
- Sets error-message sound or generates a sound
- The DONE and READNEXT commands now have optional comparisons
- For example: DONE x = y
- Restructured example files as an interactive tutorial
- Enhancements for unattended operation
- Log file (POMLOG.TXT) records processing, and any errors
- Error and warning messages pause for a minute, then the program ends
- Fixed problem with ELSE statements nested two deep
-
- 3.11A DBF file enhancements
- Improved reporting of DbF fields when tracing
- Corrected data alignment error that affected some DbF files
-
- 3.10A New ELSE command
- Allows BEGIN/ELSE/END blocks
- New READNEXT command
- Reads next line from input file, maintaining current place in POM file
- New SETLEN command
- Sets a variable to the length of a value (e.g. "XYZ" is length "3")
- New DONE command (useful only in BEGIN/ELSE/END blocks)
- Jumps to the end of the POM file; equivalent to IGNORE "X" = "Y"
- New ~ comparator ("does not contain")
- PARSE returns a null value if given impossible parsing task
- Example: PARSE x "FRED/MARY" "1*/" "2*/" (problem: no second slash)
- Maximum number of variables and literals increased to 1000 (was 225)
-
- 3.00A New PARSE command
- You can now parse free-form data (including comma-delimited files)
- New APPEND command
- Allows you to concatenate up to four values
- Data in output buffer (via OUT) is now flushed at end of input file
- You can now use POM to create binary and fixed-record-length files
- Varied comparators (equals, not equals, less than, contains, etc.)
- Affects the commands IF, IGNORE, ACCEPT, BEGIN, OUT[END]
- For example: IF x > y THEN z = "YES"
-
- -------------------------------------------
- CHANGES REQUIRED IN YOUR EXISTING POM FILES
- -------------------------------------------
-
- This notice involves a change in the behaviour of IGNORE and ACCEPT.
-
- With the addition of varied comparators, you may have to change some of
- your old POM files. The IGNORE and ACCEPT commands were considered
- "true if the string contains the specified text". In other words, they
- performed a "contains" comparison rather than an "equals" comparison.
- (IF, BEGIN and OUT[END] used an "equals" comparison.) IGNORE and ACCEPT
- now default to an "equals" comparison.
-
- There are two situations in which you must modify an IGNORE or ACCEPT:
-
- (1) If you padded the line with "=" (for clarity or aesthetics), yet
- you meant "contains", the line should be changed. For example:
-
- IGNORE $FLINE[1 10] = "YES" (old style, using "=" for clarity)
- IGNORE $FLINE[1 10] ^ "YES" (new style, using "contains" symbol)
-
- (2) If you omitted the "=" character, and you want to do a "contains"
- comparison, you must insert the "contains" symbol:
-
- IGNORE $FLINE[1 10] "YES" (old style, stated tersely)
- IGNORE $FLINE[1 10] ^ "YES" (new style, using "contains" symbol)
-
- If you are comparing two strings of equal length, there is no need to
- modify an IGNORE or ACCEPT. For example: IGNORE $FLINE[1 3] "YES"
- will continue to work properly, since either a "contains" or "equals"
- comparison will produce the same result.
-
- 2.71B Fixed SPLIT bug
- POM quit early if file length was an exact multiple of 32767
-
- 2.71A Added PROPER command
- Updated manual to explain licensing options
-
- 2.70C Minor fix to unregistered (trial copy) reminder
-
- 2.70A POM can now read DBF (DBase) files directly
- New ASCII literals (using the # character)
- New TRACE, OUTHDG and PAGELEN commands
- Documented the /Q command-line switch
- User manual expanded to 30 pages; new examples (walk-throughs) provided
-
- 2.60 New BEGIN and END commands (blocked "IF" operations)
- Command lines may now be indented for clarity
- New predefined variable $SPLIT
- This indicates which CHOP or SPLIT segment you are on (1, 2, 3 etc.)
- New look-up processing
- New LOOKUP, LOOKSPEC, LOOKCOLS, LOOKFILE commands
- New /L start-up option
- Improved error detection and reporting
- Comparison operation is now optional for OUT and OUTEND
-
- 2.52 Added new symbol $TAB; fixed operation of $BRR and $BRL
- New provisions for international registration
-
- 2.51 Fixed Program Error MV-P-2 caused by padding with tabs instead of spaces
-
- 2.50 CHOP command breaks up fixed-length (non-text) files
- User manual restructured and partially rewritten
-
- 2.40 SPLIT command breaks up long (over 255 characters) input lines
-
- 2.33 New /Q (quiet) function: type POM /? for explanation
- Fixed bug: long output lines (>255) occasionally would lose some text
-
- 2.32 Fix to CHANGE to correct lock-up when matching single-character string
- Added registration via credit card
- Added new version of SEE to allow full browsing of wide documents
- While tracing, processing display now shows precise line number
-
- 2.31 MINLEN now supports zero-length lines
- Default MINLEN is, however, still "1"
-
- 2.30 Output (via OUT and OUTEND) can now be more than 255 characters
- However, no individual OUT or OUTEND can output a line longer than 255
- New commands: PAD, INSERT
- Ease-of-use changes
- More informative processing display
- Variable names are no longer case sensitive
- Improved error checking
- Added another example to documentation
-
- 2.20 Provided 2-year self-registration for registered users
- Increased number of variables and literals from 100 to 225
- Allowed "=", "THEN" and "ELSE" to improve readability
- New commands: SET, ACCEPT
- Now possible to trace variables by name (SET POM=var/var/var...)
- SET POM=T (older versions) is now specified as SET POM=ALL
- Improved documentation (more examples)
-
- 2.10 First public release
-
- 2.00 Custom version; not released to public
-
- 1.00 Custom version; not released to public
-
-